package com.alibaba.service;

import com.alibaba.model.entity.ActivityProduct;
import com.alibaba.model.entity.Product;

import java.util.List;

/**
 * 活动商品服务接口，定义活动与商品关联的常用操作方法。
 */
public interface ActivityProductService {

    /**
     * 根据活动ID查询该活动下的所有商品
     * @param activityId 活动ID
     * @return 活动商品列表
     */
    List<ActivityProduct> listProductsByActivityId(Long activityId);

    /**
     * 根据商品ID查询该商品参与的所有活动
     * @param productId 商品ID
     * @return 活动商品列表
     */
    List<ActivityProduct> listActivitiesByProductId(Long productId);

    /**
     * 新增活动商品关联
     * @param activityProduct 活动商品实体
     * @return 是否添加成功
     */
    boolean addActivityProduct(ActivityProduct activityProduct);

    /**
     * 更新活动商品库存
     * @param activityId 活动ID
     * @param productId 商品ID
     * @param stock 新库存数量
     * @return 是否更新成功
     */
    boolean updateActivityProductStock(Long activityId, Long productId, Integer stock);

    /**
     * 删除活动商品关联
     * @param activityId 活动ID
     * @param productId 商品ID
     * @return 是否删除成功
     */
    boolean deleteActivityProduct(Long activityId, Long productId);


    /**
     * 查询当前正在进行的活动商品，并且是上架状态的
     * @return 进行中活动商品列表
     */
    List<Product> selectOngoingProduct();
}
